package edu.fasta.sisinfo2.poker;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;


public class MesaEstandar{

	private int ciegaChica;
	private int ciegaGrande;
	
	private List cartasSobreLaMesa;
	private Mazo mazo;
	
	public MesaEstandar() {
		
		this.setCiegaChica(1);
		this.setCiegaGrande(2);
		this.setMazo(new Mazo());
		this.setCartasSobreLaMesa(new ArrayList());
	}
	
	
	/**
	 * Saca 3 cartas del mazo y se las da a la mesa.
	 * 
	 */
	public void ponerFlop(){
		this.cartasSobreLaMesa.add(this.mazo.sacarCarta());
		this.cartasSobreLaMesa.add(this.mazo.sacarCarta());
		this.cartasSobreLaMesa.add(this.mazo.sacarCarta());
	}
	
	/**
	 * Saca 1 carta del mazo y se la da a la mesa.
	 */
	public void ponerTurn(){
		this.cartasSobreLaMesa.add(this.mazo.sacarCarta());
	}
	
	/**
	 * Saca 1 carta del mazo y se la da a la mesa.
	 */
	public void ponerRiver(){
		this.cartasSobreLaMesa.add(this.mazo.sacarCarta());
	}
	
	
	public void repartirInicial(List listaJugadores){
		this.getMazo().mezclar(); //mezclamos el mazo
		
		Iterator it;
		for(int i=0; i<2;i++){ // le da 2 cartas a cada jugador
			it = listaJugadores.iterator();
			while(it.hasNext()){
				((JugadorImplementacion)it.next()).getMano().agregarCartaDeJugador(this.getMazo().sacarCarta());
			}
		}
		
		//le damos el flop a la mesa (3 cartas)
		ponerFlop();
		//le damos el turn a la mesa (1 carta)
		ponerTurn();
		//le damos el river a la mesa (1 carta)
		ponerRiver();
	}
	
	/**
	 * Muestra el Flop.
	 */
	public void imprimirFlop(){
		Carta unaCarta;
		for(int i=0; i<3; i++){
			unaCarta = (Carta) this.cartasSobreLaMesa.get(i);
			System.out.println("Carta "+ (i+1) + " del Flop: " + unaCarta.imprimirla());
			
		}
		
	}
	
	/**
	 * Muesra el Turn.
	 */
	public void imprimirTurn(){
		Carta unaCarta = (Carta) this.cartasSobreLaMesa.get(3);
		
		System.out.println("Carta de Turn: " + unaCarta.imprimirla());
	}
	
	/**
	 * Muestra el River.	
	 */
	public void imprimirRiver(){
		Carta unaCarta = (Carta) this.cartasSobreLaMesa.get(4);
		
		System.out.println("Carta de River: " + unaCarta.imprimirla());
	}
	
	
	public int getCiegaChica() {
		return ciegaChica;
	}

	public void setCiegaChica(int ciegaChica) {
		this.ciegaChica = ciegaChica;
	}

	public int getCiegaGrande() {
		return ciegaGrande;
	}

	public void setCiegaGrande(int ciegaGrande) {
		this.ciegaGrande = ciegaGrande;
	}


	public Mazo getMazo() {
		return mazo;
	}

	public void setMazo(Mazo mazo) {
		this.mazo = mazo;
	}

	public List getCartasSobreLaMesa() {
		return cartasSobreLaMesa;
	}

	public void setCartasSobreLaMesa(List cartasSobreLaMesa) {
		this.cartasSobreLaMesa = cartasSobreLaMesa;
	}
	
}
